1. Field of the Invention
The present invention relates to electrically programmable and erasable non-volatile memory, and more particularly to a programming operation for charge trapping memory.
2. Description of Related Art
Electrically programmable and erasable non-volatile memory technologies based on charge storage structures known as EEPROM and flash memory are used in a variety of modern applications. A number of memory cell structures are used for EEPROM and flash memory. As the dimensions of integrated circuits shrink, greater interest is arising for memory cell structures based on charge trapping dielectric layers, because of the scalability and simplicity of the manufacturing processes. Memory cell structures based on charge trapping dielectric layers include structures known by the industry names NROM, SONOS, and PHINES, for example. These memory cell structures store data by trapping charge in a charge trapping dielectric layer, such as silicon nitride. As negative charge is trapped, the threshold voltage of the memory cell increases. The threshold voltage of the memory cell is reduced by removing negative charge from the charge trapping layer.
One basic technique used in many prior art devices to inject charge into the charge storage element is known as hot electron injection. Hot electron injection involves applying a high-voltage to a control gate on the memory cell, a high-voltage to the drain, and ground or a low-voltage to the source. This biasing arrangement causes current to flow in the channel, and hot electrons are injected from the channel into the charge storage element because of the electric field established by the high control gate voltage. A SONOS-type cell that is programmed using hot electron injection is referred to as an NROM cell herein.
There are many variations on biasing schemes used for hot electron injection. One basic problem being addressed by these variations arises because the memory cells in a large array do not all behave uniformly during a programming operation. Therefore, for a given program pulse, there is a wide distribution in the amount of charge injected into the charge storage elements of memory cells in the array on a single device. The wide distribution of charge after a program pulse makes it difficult to predict the threshold voltage of the memory cell. Accordingly, algorithms have risen which attempt to account for the distribution in charge, and typically involve applying a program pulse and then executing a verify operation to test the threshold of the memory cell after the pulse. If the threshold has not reached the target threshold after the first pulse, then the programming is retried, followed by another verify operation, and so on. A discussion of this issue is provided in Bloom et al., U.S. Pat. No. 6,396,741, entitled PROGRAMMING OF NONVOLATILE MEMORY CELLS, issued May 28, 2002. See also, Chang et al., U.S. Pat. No. 6,320,786, entitled METHOD OF CONTROLLING MULTI-STATE NROM, issued Nov. 20, 2001; and Parker, U.S. Pat. No. 6,219,276, entitled MULTILEVEL CELL PROGRAMMING, issued Apr. 17, 2001.
Some conventional program methods are based on algorithms which apply constant drain voltage, on algorithms which step the drain voltage during the program operation, and on algorithms which step the gate voltage during the program operation. These algorithms as applied to NROM however do not lead to convergence of the threshold voltage after many pulses, and require a verify operation to determine the end of the operation. The verify operation is time-consuming, and requires complex program algorithms and supporting circuitry. In floating gate flash memory, while some program algorithms may self-converge, the programming speed and accuracy can be improved.
It is desirable therefore to provide a programming algorithm for charge storage memory cells which is self-converging, eliminating or reducing the need for verify operations, and reducing the time required for the program operation. Furthermore, it is desirable to provide a programming algorithm which is self-converging at more than one target threshold level to allow multiple bit storage in a single memory cell.